// 请求模块
import axios from 'axios'
import store from '@/store'
import JSONBig from 'json-bigint'

const request = axios.create({
  baseURL: 'http://toutiao.itheima.net', // 接口的基准路径
  // transformResponse 允许自定义原始的响应数据（字符串）
  transformResponse: [
    function (data) {
      try {
        // 如果转换成功则返回转换的数据结果
        return JSONBig.parse(data)
      } catch (err) {
        // 如果转换失败，则包装为统一数据格式并返回
        return {
          data
        }
      }
    }
  ]
})

// 请求拦截器
request.interceptors.request.use(
  // 请求发起会经过这里
  // config：本次请求的请求配置对象
  function (config) {
    const { user } = store.state
    if (user && user.token) {
      config.headers.Authorization = `Bearer ${user.token}`
    }
    console.log(config)
    // 必须return 不然就停在这里了
    return config
  },
  // 如果请求出错了 （还没发出去）会进入这里
  function (error) {
    return Promise.reject(error)
  }
)

export default request
